package cc.rengu.oltp.service.common.dao;

import cc.rengu.oltp.service.common.entity.TxnLimitStatis;

import java.util.List;

/**
 * 交易限额统计表操作接口
 * Created by 王成 on 2020/2/6
 */
public interface TxnLimitStatisMapper {
    /**
     * 登记交易限额统计信息
     *
     * @param txnLimitStatis 交易限额统计信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int insertTxnLimitStatis(TxnLimitStatis txnLimitStatis) throws Exception;

    /**
     * 根据主键更新交易限额统计信息
     *
     * @param txnLimitStatis 交易限额统计信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateTxnLimitStatisByPrimaryKey(TxnLimitStatis txnLimitStatis) throws Exception;

    /**
     * 根据主键查询交易限额统计信息
     *
     * @param instId           多法人标识
     * @param statisDate       统计日期
     * @param statisType       统计类型
     * @param statisPrimaryKey 统计唯一键值
     * @return 交易限额统计信息
     * @throws Exception 异常
     */
    TxnLimitStatis selectTxnLimitStatisByPrimaryKey(String instId, String statisDate, String statisType, String statisPrimaryKey) throws Exception;

    /**
     * 根据限额主体查询交易限额统计信息
     *
     * @param instId     多法人标识
     * @param statisDate 统计日期
     * @param statisType 统计类型
     * @param limitInst  限额主体
     * @return 交易限额统计信息
     * @throws Exception 异常
     */
    List<TxnLimitStatis> selectTxnLimitStatisByLimitInst(String instId, String statisDate, String statisType, String limitInst) throws Exception;

    /**
     * 根据限额主体及限额账户类型查询交易限额统计信息
     *
     * @param instId        多法人标识
     * @param statisDate    统计日期
     * @param statisType    统计类型
     * @param limitType     限额类型
     * @param limitInst     统计主体
     * @param limitAcctType 限额账户类型
     * @return 交易限额统计信息
     * @throws Exception 异常
     */
    TxnLimitStatis selectTxnLimitStatisByLimitInstAndAcctType(String instId, String statisDate, String statisType, String limitType, String limitInst, String limitAcctType) throws Exception;

}
